<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
<script>
    /*
	undefined  和 null 的区别?
    1 出现undefinde 
	  1声明未赋值  2函数没传参 3属性不存在 4函数没ruturn  
    2 null 空指针对象  


http&https 的区别  
	不同的链接方式 端口 http 80  https 443
	HTTP是一种用于分布式、协作式和超媒体信息系统的应用层协议
                https是在http协议基础上加入加密处理和认证机制以及完整性保护，即http+加密+认证+完整性保护=https
                注: 我认为 https 就是比http 安全,我之前做项目 后端有用到过,需要证书认证什么的
	最大区别 即http 会被拦截修改不安全所以要用https 

mvvm  mvc 区别  原理
	**MVC的定义：**即model-view-controller（模型-视图-控制器） mvvm的设计原理是基于mvc的
	最后它们之间的最大区别：mvvm它实现了View和Model的自动同步，也就是当Model的属性改变时，我们不用再自己手动操作Dom元素，
	来改变View的显示，而是改变属性后该属性对应View层显示会自动改变,因此开发者只需要专注对数据的维护操作即可。

	Model（模型）View（视图）



px em rem   区别
	px(pixel)像素，相对长度单位。像素px是相对于显示器屏幕分辨率而言的.		
	em会继承父级元素的字体大小 
	rem 根元素
vw vh  %  

 
eval()作用
	字符串经eva    l转换后得到一个javascript对象
	将json字符串   转为javascript对象


浏览器的内核 分别是什么
	Trident    内核代表产品I E
	Gecko      内核代表作品Mozilla FireFox
	WebKit     内核代表作品Safari、Chromewebkit
 	Presto     内核代表作品OperaPresto


组件化和模块化的区别
	组件一般用于前端，模块化在后台运用的比较多
	组件化：主要从ui界面上进行划分。           例如前端的组件化，方便ui组件的调用
	模块化：主要从代码逻辑的角度进行划分，方便代码分层开发，保证每个功能模块职责单一



28.箭头函数和普通函数的区别
               1）箭头函数  的this是定义时决定的，普通函数是看调用方法。
               2）箭头函数  不能成为构造函数
               3）箭头函数  不能使用async/await
               4）箭头函数  不能加星




31
vue.cli中怎样使用自定义的组件？有遇到过哪些问题吗？
第一步：在components目录新建你的组件文件（indexPage.vue），script一定要export default {}
第二步：在需要用的页面（组件）中导入：import indexPage from ‘@/components/indexPage.vue’
第三步：注入到vue的子组件的components属性上面,components:{indexPage}
第四步：在template视图view中使用，
例如有indexPage命名，使用的时候则index-page


30.foreach和map区别
               map:       遍历数组中每个元素并返回一个新数组，不改变原数组,
               forEach：  遍历数组中每个元素但是没有返回值
               map        需要return forEach不需要,forEach 可以直接对数组进行一些操作运算什么的,会改变原来数组
	 
31
事件修饰符
.stop -      阻止冒泡
.prevent - 阻止默认事件
.capture - 阻止捕获
.self -        只监听触发该元素的事件
.once -     只触发一次
.left -        左键事件
.right -     右键事件
.middle - 中间滚轮事件
<!-- 阻止单击事件冒泡 -->
<a v-on:click.stop="doThis"></a>
<!-- 提交事件不再重载页面 -->
<form v-on:submit.prevent="onSubmit"></form>
.lazy
在默认情况下， v-model 在 input 事件中同步输入框的值与数据，但你可以添加一个修饰符 lazy ，从而转变为在 change 事件中同步：
<!-- 在 "change" 而不是 "input" 事件中更新 -->
<input v-model.lazy="msg" >
.number
如果想自动将用户的输入值转为 Number 类型（如果原值的转换结果为 NaN 则返回原值），可以添加一个修饰符 number 给 v-model 来处理输入值：
<input v-model.number="age" type="number">
.trim
如果要自动过滤用户输入的首尾空格，可以添加 trim 修饰符到 v-model 上过滤输入：
<input v-model.trim="msg">

*
computed  和  watch vs methods区别
computed-----计算属性 该属性是将数据挂载vue实例上 具有缓存 优点：避免重复计算
watch-----      -监听 起 观察作用 监听已经挂载vue实例上的数据（data里面值）
我们可以使用 methods 来替代 computed，效果上两个都是一样的
computed 是基于它的依赖缓存，只有相关依赖发生改变时才会重新取值。
而使用 methods ，在重新渲染的时候，函数总会重新调用执行。


*
谈谈你对 keep-alive 的了解
keep-alive 是 Vue 内置的一个组件，可以使被包含的组件保留状态，避免重新渲染    即用于缓存组件
对应两个钩子函数 activated 和 deactivated ------当组件激活时触发activated,当组件移除时触发deactivated


ajax状态码  
	 0 － （未初始化）还没有调用send()方法  
	 1 － （载入）已调用send()方法，
	 2 － （载入完成）send()方法执行完成，已经接收到全部响应内容  
	 3 － （交互）正在解析响应内容
	 4 － （完成）响应内容解析完成，可以在客户端调用了

http(服务器)状态码
	1**  服务器已经收到数据，在等待下一步操作
	2**  成功 (200	交易成功)
	3**  重定向                   301永久移动   302临时移动   304文件没更改 
	4**  客户端错误            401没有权限    403被禁止      404没找到
	5**  服务器错误            503服务器停机 
203	返回信息不确定或不完整
300	请求的资源可在多处得到
303	建议客户访问其他URL或访问方式
304	客户端已经执行了GET，但文件未变化
403	请求不允许
404	没有发现文件、查询或URl
500	服务器产生内部错误


ajax状态码
原生sjax 步骤
1 创建对象+      var xhr = new XMLHttpRequest();
2 配置对象	xhr.open("post","validate.php");
3 发送send	xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
4 接收数据res


 HTML 与 XHTML——二者有什么区别？
	区别：
	1.所有的标记都必须要有一个相应的结束标记
	2.所有标签的元素和属性的名字都必须使用小写
	3.所有的XML标记都必须合理嵌套
	4.所有的属性必须用引号""括起来
	5.把所有<和&特殊符号用编码表示
	6.给所有属性赋一个值
	7.不要在注释内容中使“- -”
	8.图片必须有说明文字



$nextTick      在下次 DOM 更新循环结束之后执行延迟回调
     	       当你修改了data的值然后马上获取这个dom元素的值，是不能获取到更新后的值，
	           你需要使用$nextTick这个回调，让修改后的data值渲染更新到dom元素之后在获取，才能成功。


强制类型装换 tostring number boolean parseint parsefloat
隐式              -    +    == 

es6   =>   ...    解构赋值   let const   ` ` 



19.Vue中双向数据绑定是如何实现的？
答：vue 双向数据绑定是通过 数据劫持 结合 发布订阅模式的方式来实现的， 也就是说数据和视图同步，数据发生变化，视图跟着变化，视图变化，数据也随之发生改变；
核心：关于VUE双向数据绑定，其核心是 Object.defineProperty()方法。
20.说说单页面应用和多页面应用区别及优缺点
答：单页面应用（SPA），通俗一点说就是指只有一个主页面的应用，浏览器一开始要加载所有必须的 html, js, css。
		      所有的页面内容都包含在这个所谓的主页面中。但在写的时候，还是会分开写（页面片段），然后在交互的时候由路由程序动态载入，单页面的页面跳转，仅刷新局部资源。多应用于pc端。
      多页面（MPA）      ，就是指一个应用中有多个页面，页面跳转时是整页刷新
     
https://blog.csdn.net/weixin_41308566/article/details/79914565  #去掉它  






    */
</script>